package com.common.model.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/** 系统权限表 @TableName sys_permission */
@TableName(value = "sys_permission")
@Data
public class SysPermission implements Serializable {
  /** 权限ID（雪花算法生成） */
  @TableId(value = "id", type = IdType.ASSIGN_ID)
  private Long id;

  /** 权限名称（如：用户新增、角色删除） */
  @TableField(value = "permission_name")
  private String permissionName;

  /** 权限标识（如：user:add，用于权限框架校验） */
  @TableField(value = "permission_key")
  private String permissionKey;

  /** 关联资源路径（如：/api/user/*） */
  @TableField(value = "url")
  private String url;

  /** 请求方法（如：GET、POST，配合url使用） */
  @TableField(value = "method")
  private String method;

  /** 父权限ID（0表示顶级权限，雪花算法生成） */
  @TableField(value = "parent_id")
  private Long parentId;

  /** 权限类型（1-菜单，2-按钮，3-接口） */
  @TableField(value = "type")
  private Integer type;

  /** 排序号（用于展示顺序） */
  @TableField(value = "sort")
  private Integer sort;

  /** 创建时间 */
  @TableField(value = "create_time")
  private Date createTime;

  /** 更新时间 */
  @TableField(value = "update_time")
  private Date updateTime;

  /** 逻辑删除（0-未删除，1-已删除） */
  @TableField(value = "is_deleted")
  private Integer isDeleted;

  @TableField(exist = false)
  private static final long serialVersionUID = 1L;
}
